package fantasma;

public class Fantasma implements IFantasma {

	private EstadoFantasma estadoFantasma;
	private Posicion posicion;
		
	@Override
	public void setEstadoFantasma(EstadoFantasma estadoFantasma) {
		this.estadoFantasma = estadoFantasma;
		this.estadoFantasma.iniciar();
	}
	
	@Override
	public void setPosicion(Posicion posicion){
		this.posicion= posicion;
	}

	@Override
	public void convertirEnPresa() {
		this.estadoFantasma.convertirEnPresa();
	}

	@Override
	public void matar() {
		this.estadoFantasma.matar();
	}

	@Override
	public void molestar() {
		this.estadoFantasma.molestar();
	}

	@Override
	public void mover() {
		this.estadoFantasma.mover(this.posicion);
	}
	
	@Override
	public int getAgresividad(){
		return this.estadoFantasma.getAgresividad();
	}
	
	@Override
	public Posicion getPosicion(){
		Posicion posRetorno= new PosicionFactory().copiarPosicion(this.posicion);
		return posRetorno;
	}
	
	@Override
	public String getEstadoString(){
		return this.estadoFantasma.toString();
	}

	@Override
	public String toString() {
		return "Fantasma " + this.estadoFantasma.toString() + " con agresividad " + this.estadoFantasma.getAgresividad();
	}
	
}
